30.2.1. Connecting to a MongoDB Database
30.2.1. 连接MongoDB数据库
你可以注入一个自动配置的org.springframework.data.mongodb.MongoDbFactory
来访问Mongo数据库。默认情况下,该实例将尝试使用URL mongodb://localhost/test
连接到MongoDB服务器。下面的例子展示了怎么连接到一个MongoDB数据库:
import org.springframework.data.mongodb.MongoDbFactory;
import com.mongodb.DB;
@Component
public class MyBean {
private final MongoDbFactory mongo;
@Autowired
public MyBean(MongoDbFactory mongo) {
this.mongo = mongo;
}
// ...
public void example() {
DB db = mongo.getDb();
// ...
}
}
你可以设置spring.data.mongodb.uri
来改变该URL,并配置其它的设置,比如副本集,如下所示:
spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test
另外,跟正在使用的Mongo 2.x一样,你可以指定host
/port
,比如,在application.properties
中添加以下配置:
spring.data.mongodb.host=mongoserver
spring.data.mongodb.port=27017
注 Mongo 3.0 Java驱动不支持spring.data.mongodb.host
和spring.data.mongodb.port
。对于这种情况,spring.data.mongodb.uri
需要提供全部的配置信息。
注 如果没有指定spring.data.mongodb.port
,默认使用27017
,上述示例中可以删除这行配置。
注 如果不使用Spring Data Mongo,你可以注入com.mongodb.MongoClient
bean,以代替MongoDbFactory
。如果想完全控制MongoDB连接的建立过程,你可以声明自己的MongoDbFactory
或MongoClient
bean。
注 如果你正在使用响应式的驱动,使用SSL需要Netty。如果Netty可用,并且将使用的工厂没有被配置,那么工厂会被自动配置好。